pipeline operator
こんなコードを
h(g(f(x)))
こんな風に書ける
x |> f |> g |> h
括弧も減るし
関数を呼ばれる順に記述できるし
インデントも深くならない
ElixirやElm、F#、OCamlに入っている
JavaScriptにも草案がある
Juliaにもある
OCamlでのシンプルな(|>)の定義
code:ml
let (|>) x f = f x
似た機能
..でチェーンする
チェーンしたメソッドの戻り値は、チェーンせずに使ったときの戻り値と異なるものになる
code:dart
querySelector('#confirm') // Get an object.
..text = 'Confirm' // Use its members.
..classes.add('important')
..onClick.listen((e) => window.alert('Confirmed!'));
final addressBook = (AddressBookBuilder()
..name = 'jenny'
..email = 'jenny@example.com'
..phone = (PhoneNumberBuilder()
..number = '415-555-0100'
..label = 'home')
.build())
.build();
参考
わかりやすいし、リンクも豊富
F#やOCamlのそれと、Elixirのそれが似て非なるものであることなどが解説されている